/* NicEdit - Micro Inline WYSIWYG
 * Copyright 2007-2008 Brian Kirchoff
 *
 * NicEdit is distributed under the terms of the MIT license
 * For more information visit http://nicedit.com/
 * Do not remove this copyright message
 */
var bkExtend=function(){
    var A=arguments;
    if(A.length==1){A=[this,A[0]]}
    for(var B in A[1]){A[0][B]=A[1][B]}
    return A[0]
};
function bkClass(){}
bkClass.prototype.construct=function(){};
bkClass.extend=function(C){
    var A=function(){
        if(arguments[0]!==bkClass){
            return this.construct.apply(this,arguments)
        }
    };
    var B=new this(bkClass);
    bkExtend(B,C);
    A.prototype=B;
    A.extend=this.extend;
    return A
};
var bkElement=bkClass.extend({
    construct:function(B,A){
        if(typeof (B)=="string"){
            B=(A||document).createElement(B)
        }
        B=$BK(B);
        return B
    },
    appendTo:function(A){
        A.appendChild(this);
        return this},
    appendBefore:function(A){
        A.parentNode.insertBefore(this,A);
        return this},
    addEvent:function(B,A){
        bkLib.addEvent(this,B,A);
        return this},
    setContent:function(A){
        this.innerHTML=A;return this},
    pos:function(){
        var C=curtop=0;
        var B=obj=this;
        if(obj.offsetParent){
            do{
                C+=obj.offsetLeft;curtop+=obj.offsetTop
            }while(obj=obj.offsetParent)
        }
        var A=(!window.opera)?parseInt(this.getStyle("border-width")||this.style.border)||0:0;return[C+A,curtop+A+this.offsetHeight]},
    noSelect:function(){
        bkLib.noSelect(this);
        return this},
        parentTag:function(A){
            var B=this;
            do{
                if(B&&B.nodeName&&B.nodeName.toUpperCase()==A){return B}
                B=B.parentNode
            }while(B);
            return false
        },
        hasClass:function(A){
            return this.className.match(new RegExp("(\\s|^)nicEdit-"+A+"(\\s|$)"))},
        addClass:function(A){
            if(!this.hasClass(A)){
                this.className+=" nicEdit-"+A
            }
            return this},
        removeClass:function(A){
            if(this.hasClass(A)){
                this.className=this.className.replace(new RegExp("(\\s|^)nicEdit-"+A+"(\\s|$)")," ")
            }return this},
        setStyle:function(A){
            var B=this.style;
            for(var C in A){
                switch(C){
                    case"float":B.cssFloat=B.styleFloat=A[C];break;
                    case"opacity":B.opacity=A[C];B.filter="alpha(opacity="+Math.round(A[C]*100)+")";break;
                    case"className":this.className=A[C];break;
                    default:B[C]=A[C]}
            }return this},
        getStyle:function(A,C){
            var B=(!C)?document.defaultView:C;
            if(this.nodeType==1){
                return(B&&B.getComputedStyle)?B.getComputedStyle(this,null).getPropertyValue(A):this.currentStyle[bkLib.camelize(A)]
            }
        },
        remove:function(){
            this.parentNode.removeChild(this);
            return this},
        setAttributes:function(A){
            for(var B in A){
                this[B]=A[B]}return this
        }
    }
);
var bkLib={
    isMSIE:(navigator.appVersion.indexOf("MSIE")!=-1),
    addEvent:function(C,B,A){
        (C.addEventListener)?C.addEventListener(B,A,false):C.attachEvent("on"+B,A)
    },
    toArray:function(C){
        var B=C.length,A=new Array(B);
        while(B--){A[B]=C[B]}
        return A
    },
    noSelect:function(B){
        if(B.setAttribute&&B.nodeName.toLowerCase()!="input"&&B.nodeName.toLowerCase()!="textarea"){
            B.setAttribute("unselectable","on")
        }
        for(var A=0;A<B.childNodes.length;A++){
            bkLib.noSelect(B.childNodes[A])}},
    camelize:function(A){
        return A.replace(/\-(.)/g,function(B,C){return C.toUpperCase()})},
    inArray:function(A,B){
        return(bkLib.search(A,B)!=null)},
    search:function(A,C){
        for(var B=0;B<A.length;B++){
            if(A[B]==C){return B}}return null},
    cancelEvent:function(A){
        A=A||window.event;
        if(A.preventDefault&&A.stopPropagation){
            A.preventDefault();A.stopPropagation()
        }
        return false},
    domLoad:[],
    domLoaded:function(){
        if(arguments.callee.done){return }
        arguments.callee.done=true;
        for(i=0;i<bkLib.domLoad.length;i++){
            bkLib.domLoad[i]()
        }
    },
    onDomLoaded:function(A){
        this.domLoad.push(A);
        if(document.addEventListener){
            document.addEventListener("DOMContentLoaded",bkLib.domLoaded,null)
        }
        else{
            if(bkLib.isMSIE){
                document.write("<style>.nicEdit-main p { margin: 0; }</style><script id=__ie_onload defer "+((location.protocol=="https:")?"src='javascript:void(0)'":"src=//0")+"><\/script>");
                $BK("__ie_onload").onreadystatechange=function(){
                    if(this.readyState=="complete"){bkLib.domLoaded()}
                }
            }
        }
        window.onload=bkLib.domLoaded
    }
};
function $BK(A){
    if(typeof (A)=="string"){A=document.getElementById(A)}
    return(A&&!A.appendTo)?bkExtend(A,bkElement.prototype):A
}
var bkEvent={
    addEvent:function(A,B){
        if(B){
            this.eventList=this.eventList||{};
            this.eventList[A]=this.eventList[A]||[];
            this.eventList[A].push(B)}return this},
    fireEvent:function(){
        var A=bkLib.toArray(arguments),C=A.shift();
        if(this.eventList&&this.eventList[C]){
            for(var B=0;B<this.eventList[C].length;B++){
                this.eventList[C][B].apply(this,A)
            }
        }
    }
};
function __(A){return A}
Function.prototype.closure=function(){
    var A=this,B=bkLib.toArray(arguments),C=B.shift();
    return function(){
        if(typeof (bkLib)!="undefined"){
            return A.apply(C,B.concat(bkLib.toArray(arguments)))
        }
    }
};
Function.prototype.closureListener=function(){
    var A=this,C=bkLib.toArray(arguments),B=C.shift();
    return function(E){
        E=E||window.event;
        if(E.target){var D=E.target}
        else{var D=E.srcElement}
        return A.apply(B,[E,D].concat(C))
   }
};



var nicEditorConfig = bkClass.extend({
	buttons : {
		'bold' : {name : __('粗体'), command : 'Bold', tags : ['B','STRONG'], css : {'font-weight' : 'bold'}, key : 'b'},
		'italic' : {name : __('斜体'), command : 'Italic', tags : ['EM','I'], css : {'font-style' : 'italic'}, key : 'i'},
		'underline' : {name : __('下划线'), command : 'Underline', tags : ['U'], css : {'text-decoration' : 'underline'}, key : 'u'},
		'left' : {name : __('左对齐'), command : 'justifyleft', noActive : true},
		'center' : {name : __('居中对齐'), command : 'justifycenter', noActive : true},
		'right' : {name : __('右对齐'), command : 'justifyright', noActive : true},
		'justify' : {name : __('两端对齐'), command : 'justifyfull', noActive : true},
		'ol' : {name : __('插入有序列表'), command : 'insertorderedlist', tags : ['OL']},
		'ul' : 	{name : __('插入无序列表'), command : 'insertunorderedlist', tags : ['UL']},
		'subscript' : {name : __('上标'), command : 'subscript', tags : ['SUB']},
		'superscript' : {name : __('下标'), command : 'superscript', tags : ['SUP']},
		'strikethrough' : {name : __('Click to Strike Through'), command : 'strikeThrough', css : {'text-decoration' : 'line-through'}},
		'removeformat' : {name : __('清除格式'), command : 'removeformat', noActive : true},
		'indent' : {name : __('缩进'), command : 'indent', noActive : true},
		'outdent' : {name : __('清除缩进'), command : 'outdent', noActive : true},
		'hr' : {name : __('横线'), command : 'insertHorizontalRule', noActive : true}
	},
	iconsPath : '/editor/nicEdit/nicEditorIcons.gif',
	buttonList : ['save','bold','italic','underline','left','center','right','justify','ol','ul','fontSize','fontFamily','fontFormat','indent','outdent','image','upload','link','unlink','forecolor','bgcolor'],
	iconList : {"xhtml":1,"bgcolor":2,"forecolor":3,"bold":4,"center":5,"hr":6,"indent":7,"italic":8,"justify":9,"left":10,"ol":11,"outdent":12,"removeformat":13,"right":14,"save":25,"strikethrough":16,"subscript":17,"superscript":18,"ul":19,"underline":20,"image":21,"link":22,"unlink":23,"close":24,"arrow":26,"upload":27}
	
});
;
var nicEditors={
    nicPlugins:[],
    editors:[],
    registerPlugin:function(B,A){this.nicPlugins.push({p:B,o:A})},
    allTextAreas:function(C){var A=document.getElementsByTagName("textarea");for(var B=0;B<A.length;B++){nicEditors.editors.push(new nicEditor(C).panelInstance(A[B]))}return nicEditors.editors},
    findEditor:function(C){
        var B=nicEditors.editors;
        for(var A=0;A<B.length;A++){
            if(B[A].instanceById(C)){return B[A].instanceById(C)}
        }
    }
};
var nicEditor=bkClass.extend({
    construct:function(C){
        this.options=new nicEditorConfig();
        bkExtend(this.options,C);
        this.nicInstances=new Array();
        this.loadedPlugins=new Array();
        var A=nicEditors.nicPlugins;
        for(var B=0;B<A.length;B++){this.loadedPlugins.push(new A[B].p(this,A[B].o))}
        nicEditors.editors.push(this);
        bkLib.addEvent(document.body,"mousedown",this.selectCheck.closureListener(this))
    },
    panelInstance:function(B,C){
        B=this.checkReplace($BK(B));
        var A=new bkElement("DIV").setStyle({
            width:(parseInt(B.getStyle("width"))||B.clientWidth)+"px"}).appendBefore(B);
            this.setPanel(A);
            return this.addInstance(B,C)
    },
    checkReplace:function(B){
        var A=nicEditors.findEditor(B);
        if(A){
            A.removeInstance(B);
            A.removePanel()
        }
        return B
    },
    addInstance:function(B,C){
        B=this.checkReplace($BK(B));
        if(B.contentEditable||!!window.opera){
            var A=new nicEditorInstance(B,C,this)
        }
        else{
            var A=new nicEditorIFrameInstance(B,C,this)
        }
        this.nicInstances.push(A);
        return this
    },
    removeInstance:function(C){
        C=$BK(C);
        var B=this.nicInstances;
        for(var A=0;A<B.length;A++){
            if(B[A].e==C){
                B[A].remove();
                this.nicInstances.splice(A,1)}
        }
    },
    removePanel:function(A){
        if(this.nicPanel){
            this.nicPanel.remove();
            this.nicPanel=null
        }
    },
    instanceById:function(C){
        C=$BK(C);
        var B=this.nicInstances;
        for(var A=0;A<B.length;A++){if(B[A].e==C){return B[A]}}
    },
    setPanel:function(A){
        this.nicPanel=new nicEditorPanel($BK(A),this.options,this);
        this.fireEvent("panel",this.nicPanel);
        return this
    },
    nicCommand:function(B,A){
        if(this.selectedInstance){
            this.selectedInstance.nicCommand(B,A)
        }
    },
    getIcon:function(D,A){
        var C=this.options.iconList[D];
        var B=(A.iconFiles)?A.iconFiles[D]:"";
        return{backgroundImage:"url('"+((C)?this.options.iconsPath:B)+"')",backgroundPosition:((C)?((C-1)*-18):0)+"px 0px"}
    },
    selectCheck:function(C,A){
        var B=false;
        do{
            if(A.className&&A.className.indexOf("nicEdit")!=-1){return false}
        }while(A=A.parentNode);
        this.fireEvent("blur",this.selectedInstance,A);
        this.lastSelectedInstance=this.selectedInstance;
        this.selectedInstance=null;
        return false
    }
});
nicEditor=nicEditor.extend(bkEvent);

var nicEditorInstance=bkClass.extend({
    isSelected:false,
    construct:function(G,D,C){this.ne=C;this.elm=this.e=G;this.options=D||{};newX=parseInt(G.getStyle("width"))||G.clientWidth;newY=parseInt(G.getStyle("height"))||G.clientHeight;this.initialHeight=newY-8;var H=(G.nodeName.toLowerCase()=="textarea");if(H||this.options.hasPanel){var B=(bkLib.isMSIE&&!((typeof document.body.style.maxHeight!="undefined")&&document.compatMode=="CSS1Compat"));var E={width:newX+"px",border:"1px solid #ccc",borderTop:0,overflowY:"auto",overflowX:"hidden"};E[(B)?"height":"maxHeight"]=(this.ne.options.maxHeight)?this.ne.options.maxHeight+"px":null;this.editorContain=new bkElement("DIV").setStyle(E).appendBefore(G);var A=new bkElement("DIV").setStyle({width:(newX-8)+"px",margin:"4px",minHeight:newY+"px"}).addClass("main").appendTo(this.editorContain);G.setStyle({display:"none"});A.innerHTML=G.innerHTML;if(H){A.setContent(G.value);this.copyElm=G;var F=G.parentTag("FORM");if(F){bkLib.addEvent(F,"submit",this.saveContent.closure(this))}}A.setStyle((B)?{height:newY+"px"}:{overflow:"hidden"});this.elm=A}this.ne.addEvent("blur",this.blur.closure(this));this.init();this.blur()},
    init:function(){this.elm.setAttribute("contentEditable","true");if(this.getContent()==""){this.setContent("<br />")}this.instanceDoc=document.defaultView;this.elm.addEvent("mousedown",this.selected.closureListener(this)).addEvent("keypress",this.keyDown.closureListener(this)).addEvent("focus",this.selected.closure(this)).addEvent("blur",this.blur.closure(this)).addEvent("keyup",this.selected.closure(this));this.ne.fireEvent("add",this)},
    remove:function(){this.saveContent();if(this.copyElm||this.options.hasPanel){this.editorContain.remove();this.e.setStyle({display:"block"});this.ne.removePanel()}this.disable();this.ne.fireEvent("remove",this)},
    disable:function(){this.elm.setAttribute("contentEditable","false")},
    getSel:function(){return(window.getSelection)?window.getSelection():document.selection},
    getRng:function(){var A=this.getSel();if(!A){return null}return(A.rangeCount>0)?A.getRangeAt(0):A.createRange()},
    selRng:function(A,B){if(window.getSelection){B.removeAllRanges();B.addRange(A)}else{A.select()}},
    selElm:function(){var C=this.getRng();if(C.startContainer){var D=C.startContainer;if(C.cloneContents().childNodes.length==1){for(var B=0;B<D.childNodes.length;B++){var A=D.childNodes[B].ownerDocument.createRange();A.selectNode(D.childNodes[B]);if(C.compareBoundaryPoints(Range.START_TO_START,A)!=1&&C.compareBoundaryPoints(Range.END_TO_END,A)!=-1){return $BK(D.childNodes[B])}}}return $BK(D)}else{return $BK((this.getSel().type=="Control")?C.item(0):C.parentElement())}},
    saveRng:function(){this.savedRange=this.getRng();this.savedSel=this.getSel()},
    restoreRng:function(){if(this.savedRange){this.selRng(this.savedRange,this.savedSel)}},
    keyDown:function(B,A){if(B.ctrlKey){this.ne.fireEvent("key",this,B)}},
    selected:function(C,A){if(!A){A=this.selElm()}if(!C.ctrlKey){var B=this.ne.selectedInstance;if(B!=this){if(B){this.ne.fireEvent("blur",B,A)}this.ne.selectedInstance=this;this.ne.fireEvent("focus",B,A)}this.ne.fireEvent("selected",B,A);this.isFocused=true;this.elm.addClass("selected")}return false},blur:function(){this.isFocused=false;this.elm.removeClass("selected")},saveContent:function(){if(this.copyElm||this.options.hasPanel){this.ne.fireEvent("save",this);(this.copyElm)?this.copyElm.value=this.getContent():this.e.innerHTML=this.getContent()}},getElm:function(){return this.elm},getContent:function(){this.content=this.getElm().innerHTML;this.ne.fireEvent("get",this);return this.content},setContent:function(A){this.content=A;this.ne.fireEvent("set",this);this.elm.innerHTML=this.content},nicCommand:function(B,A){document.execCommand(B,false,A)}});
var nicEditorIFrameInstance=nicEditorInstance.extend({
    savedStyles:[],
    init:function(){var B=this.elm.innerHTML.replace(/^\s+|\s+$/g,"");this.elm.innerHTML="";(!B)?B="<br />":B;this.initialContent=B;this.elmFrame=new bkElement("iframe").setAttributes({src:"javascript:;",frameBorder:0,allowTransparency:"true",scrolling:"no"}).setStyle({height:"100px",width:"100%"}).addClass("frame").appendTo(this.elm);if(this.copyElm){this.elmFrame.setStyle({width:(this.elm.offsetWidth-4)+"px"})}var A=["font-size","font-family","font-weight","color"];for(itm in A){this.savedStyles[bkLib.camelize(itm)]=this.elm.getStyle(itm)}setTimeout(this.initFrame.closure(this),50)},
    disable:function(){this.elm.innerHTML=this.getContent()},
    initFrame:function(){var B=$BK(this.elmFrame.contentWindow.document);B.designMode="on";B.open();var A=this.ne.options.externalCSS;B.write("<html><head>"+((A)?'<link href="'+A+'" rel="stylesheet" type="text/css" />':"")+'</head><body id="nicEditContent" style="margin: 0 !important; background-color: transparent !important;">'+this.initialContent+"</body></html>");B.close();this.frameDoc=B;this.frameWin=$BK(this.elmFrame.contentWindow);this.frameContent=$BK(this.frameWin.document.body).setStyle(this.savedStyles);this.instanceDoc=this.frameWin.document.defaultView;this.heightUpdate();this.frameDoc.addEvent("mousedown",this.selected.closureListener(this)).addEvent("keyup",this.heightUpdate.closureListener(this)).addEvent("keydown",this.keyDown.closureListener(this)).addEvent("keyup",this.selected.closure(this));this.ne.fireEvent("add",this)},
    getElm:function(){return this.frameContent},
    setContent:function(A){this.content=A;this.ne.fireEvent("set",this);this.frameContent.innerHTML=this.content;this.heightUpdate()},
    getSel:function(){return(this.frameWin)?this.frameWin.getSelection():this.frameDoc.selection},
    heightUpdate:function(){this.elmFrame.style.height=Math.max(this.frameContent.offsetHeight,this.initialHeight)+"px"},nicCommand:function(B,A){this.frameDoc.execCommand(B,false,A);setTimeout(this.heightUpdate.closure(this),100)}});
var nicEditorPanel=bkClass.extend({construct:function(E,B,A){this.elm=E;this.options=B;this.ne=A;this.panelButtons=new Array();this.buttonList=bkExtend([],this.ne.options.buttonList);this.panelContain=new bkElement("DIV").setStyle({overflow:"hidden",width:"100%",border:"1px solid #cccccc",backgroundColor:"#efefef"}).addClass("panelContain");this.panelElm=new bkElement("DIV").setStyle({margin:"2px",marginTop:"0px",zoom:1,overflow:"hidden"}).addClass("panel").appendTo(this.panelContain);this.panelContain.appendTo(E);var C=this.ne.options;var D=C.buttons;for(button in D){this.addButton(button,C,true)}this.reorder();E.noSelect()},addButton:function(buttonName,options,noOrder){var button=options.buttons[buttonName];var type=(button.type)?eval("(typeof("+button.type+') == "undefined") ? null : '+button.type+";"):nicEditorButton;var hasButton=bkLib.inArray(this.buttonList,buttonName);if(type&&(hasButton||this.ne.options.fullPanel)){this.panelButtons.push(new type(this.panelElm,buttonName,options,this.ne));if(!hasButton){this.buttonList.push(buttonName)}}},findButton:function(B){for(var A=0;A<this.panelButtons.length;A++){if(this.panelButtons[A].name==B){return this.panelButtons[A]}}},reorder:function(){var C=this.buttonList;for(var B=0;B<C.length;B++){var A=this.findButton(C[B]);if(A){this.panelElm.appendChild(A.margin)}}},remove:function(){this.elm.remove()}});
var nicEditorButton=bkClass.extend({
    construct:function(D,A,C,B){this.options=C.buttons[A];this.name=A;this.ne=B;this.elm=D;this.margin=new bkElement("DIV").setStyle({"float":"left",marginTop:"2px"}).appendTo(D);this.contain=new bkElement("DIV").setStyle({width:"20px",height:"20px"}).addClass("buttonContain").appendTo(this.margin);this.border=new bkElement("DIV").setStyle({backgroundColor:"#efefef",border:"1px solid #efefef"}).appendTo(this.contain);this.button=new bkElement("DIV").setStyle({width:"18px",height:"18px",overflow:"hidden",zoom:1,cursor:"pointer"}).addClass("button").setStyle(this.ne.getIcon(A,C)).appendTo(this.border);this.button.addEvent("mouseover",this.hoverOn.closure(this)).addEvent("mouseout",this.hoverOff.closure(this)).addEvent("mousedown",this.mouseClick.closure(this)).noSelect();if(!window.opera){this.button.onmousedown=this.button.onclick=bkLib.cancelEvent}B.addEvent("selected",this.enable.closure(this)).addEvent("blur",this.disable.closure(this)).addEvent("key",this.key.closure(this));this.disable();this.init()},
    init:function(){},
    hide:function(){this.contain.setStyle({display:"none"})},
    updateState:function(){if(this.isDisabled){this.setBg()}else{if(this.isHover){this.setBg("hover")}else{if(this.isActive){this.setBg("active")}else{this.setBg()}}}},
    setBg:function(A){switch(A){case"hover":var B={border:"1px solid #666",backgroundColor:"#ddd"};break;
case"active":var B={border:"1px solid #666",backgroundColor:"#ccc"};break;default:var B={border:"1px solid #efefef",backgroundColor:"#efefef"}}this.border.setStyle(B).addClass("button-"+A)},
    checkNodes:function(A){var B=A;do{if(this.options.tags&&bkLib.inArray(this.options.tags,B.nodeName)){this.activate();return true}}while(B=B.parentNode&&B.className!="nicEdit");B=$BK(A);while(B.nodeType==3){B=$BK(B.parentNode)}if(this.options.css){for(itm in this.options.css){if(B.getStyle(itm,this.ne.selectedInstance.instanceDoc)==this.options.css[itm]){this.activate();return true}}}this.deactivate();return false},
    activate:function(){if(!this.isDisabled){this.isActive=true;this.updateState();this.ne.fireEvent("buttonActivate",this)}},
    deactivate:function(){this.isActive=false;this.updateState();if(!this.isDisabled){this.ne.fireEvent("buttonDeactivate",this)}},
    enable:function(A,B){this.isDisabled=false;this.contain.setStyle({opacity:1}).addClass("buttonEnabled");this.updateState();this.checkNodes(B)},
    disable:function(A,B){this.isDisabled=true;this.contain.setStyle({opacity:0.6}).removeClass("buttonEnabled");this.updateState()},
    toggleActive:function(){(this.isActive)?this.deactivate():this.activate()},
    hoverOn:function(){if(!this.isDisabled){this.isHover=true;this.updateState();this.ne.fireEvent("buttonOver",this)}},
    hoverOff:function(){this.isHover=false;this.updateState();this.ne.fireEvent("buttonOut",this)},
    mouseClick:function(){if(this.options.command){this.ne.nicCommand(this.options.command,this.options.commandArgs);if(!this.options.noActive){this.toggleActive()}}this.ne.fireEvent("buttonClick",this)},
    key:function(A,B){if(this.options.key&&B.ctrlKey&&String.fromCharCode(B.keyCode||B.charCode).toLowerCase()==this.options.key){this.mouseClick();if(B.preventDefault){B.preventDefault()}}}});
var nicPlugin=bkClass.extend({
    construct:function(B,A){this.options=A;this.ne=B;this.ne.addEvent("panel",this.loadPanel.closure(this));this.init()},
    loadPanel:function(C){var B=this.options.buttons;for(var A in B){C.addButton(A,this.options)}C.reorder()},
    init:function(){}});


var nicPaneOptions = { };

var nicEditorPane=bkClass.extend({
    construct:function(D,C,B,A){this.ne=C;this.elm=D;this.pos=D.pos();this.contain=new bkElement("div").setStyle({zIndex:"99999",overflow:"hidden",position:"absolute",left:this.pos[0]+"px",top:this.pos[1]+"px"});this.pane=new bkElement("div").setStyle({fontSize:"12px",border:"1px solid #ccc",overflow:"hidden",padding:"4px",textAlign:"left",backgroundColor:"#ffffc9"}).addClass("pane").setStyle(B).appendTo(this.contain);if(A&&!A.options.noClose){this.close=new bkElement("div").setStyle({"float":"right",height:"16px",width:"16px",cursor:"pointer"}).setStyle(this.ne.getIcon("close",nicPaneOptions)).addEvent("mousedown",A.removePane.closure(this)).appendTo(this.pane)}this.contain.noSelect().appendTo(document.body);this.position();this.init()},
    init:function(){},
    position:function(){if(this.ne.nicPanel){var B=this.ne.nicPanel.elm;var A=B.pos();var C=A[0]+parseInt(B.getStyle("width"))-(parseInt(this.pane.getStyle("width"))+8);if(C<this.pos[0]){this.contain.setStyle({left:C+"px"})}}},
    toggle:function(){this.isVisible=!this.isVisible;this.contain.setStyle({display:((this.isVisible)?"block":"none")})},
    remove:function(){if(this.contain){this.contain.remove();this.contain=null}},
    append:function(A){A.appendTo(this.pane)},
    setContent:function(A){this.pane.setContent(A)}});

var nicEditorAdvancedButton=nicEditorButton.extend({
    init:function(){this.ne.addEvent("selected",this.removePane.closure(this)).addEvent("blur",this.removePane.closure(this))},
    mouseClick:function(){if(!this.isDisabled){if(this.pane&&this.pane.pane){this.removePane()}else{this.pane=new nicEditorPane(this.contain,this.ne,{width:(this.width||"270px"),backgroundColor:"#fff"},this);this.addPane();this.ne.selectedInstance.saveRng()}}},
    addForm:function(C,G){this.form=new bkElement("form").addEvent("submit",this.submit.closureListener(this));this.pane.append(this.form);this.inputs={};for(itm in C){var D=C[itm];var F="";if(G){F=G.getAttribute(itm)}if(!F){F=D.value||""}var A=C[itm].type;if(A=="title"){new bkElement("div").setContent(D.txt).setStyle({fontSize:"14px",fontWeight:"bold",padding:"0px",margin:"2px 0"}).appendTo(this.form)}else{var B=new bkElement("div").setStyle({overflow:"hidden",clear:"both"}).appendTo(this.form);if(D.txt){new bkElement("label").setAttributes({"for":itm}).setContent(D.txt).setStyle({margin:"2px 4px",fontSize:"13px",width:"50px",lineHeight:"20px",textAlign:"right","float":"left"}).appendTo(B)}switch(A){case"text":this.inputs[itm]=new bkElement("input").setAttributes({id:itm,value:F,type:"text"}).setStyle({margin:"2px 0",fontSize:"13px","float":"left",height:"20px",border:"1px solid #ccc",overflow:"hidden"}).setStyle(D.style).appendTo(B);break;
case"select":this.inputs[itm]=new bkElement("select").setAttributes({id:itm}).setStyle({border:"1px solid #ccc","float":"left",margin:"2px 0"}).appendTo(B);
for(opt in D.options){var E=new bkElement("option").setAttributes({value:opt,selected:(opt==F)?"selected":""}).setContent(D.options[opt]).appendTo(this.inputs[itm])}break;
case"content":this.inputs[itm]=new bkElement("textarea").setAttributes({id:itm}).setStyle({border:"1px solid #ccc","float":"left"}).setStyle(D.style).appendTo(B);this.inputs[itm].value=F}}}new bkElement("input").setAttributes({type:"submit"}).setStyle({backgroundColor:"#efefef",border:"1px solid #ccc",margin:"3px 0","float":"left",clear:"both"}).appendTo(this.form);this.form.onsubmit=bkLib.cancelEvent},
    submit:function(){},
    findElm:function(B,A,E){var D=this.ne.selectedInstance.getElm().getElementsByTagName(B);for(var C=0;C<D.length;C++){if(D[C].getAttribute(A)==E){return $BK(D[C])}}},
    removePane:function(){if(this.pane){this.pane.remove();this.pane=null;this.ne.selectedInstance.restoreRng()}}});

var nicButtonTips=bkClass.extend({
    construct:function(A){this.ne=A;A.addEvent("buttonOver",this.show.closure(this)).addEvent("buttonOut",this.hide.closure(this))},
    show:function(A){this.timer=setTimeout(this.create.closure(this,A),400)},
    create:function(A){this.timer=null;if(!this.pane){this.pane=new nicEditorPane(A.button,this.ne,{fontSize:"12px",marginTop:"5px"});this.pane.setContent(A.options.name)}},
    hide:function(A){if(this.timer){clearTimeout(this.timer)}if(this.pane){this.pane=this.pane.remove()}}});nicEditors.registerPlugin(nicButtonTips);


var nicSelectOptions = {
	buttons : {
		'fontSize' : {name : __('文字大小'), type : 'nicEditorFontSizeSelect', command : 'fontsize'},
		'fontFamily' : {name : __('选择字体'), type : 'nicEditorFontFamilySelect', command : 'fontname'},
		'fontFormat' : {name : __('选择格式'), type : 'nicEditorFontFormatSelect', command : 'formatBlock'}
	}
};

var nicEditorSelect=bkClass.extend({
    construct:function(D,A,C,B){this.options=C.buttons[A];this.elm=D;this.ne=B;this.name=A;this.selOptions=new Array();this.margin=new bkElement("div").setStyle({"float":"left",margin:"2px 1px 0 1px"}).appendTo(this.elm);this.contain=new bkElement("div").setStyle({width:"90px",height:"20px",cursor:"pointer",overflow:"hidden"}).addClass("selectContain").addEvent("click",this.toggle.closure(this)).appendTo(this.margin);this.items=new bkElement("div").setStyle({overflow:"hidden",zoom:1,border:"1px solid #ccc",paddingLeft:"3px",backgroundColor:"#fff"}).appendTo(this.contain);this.control=new bkElement("div").setStyle({overflow:"hidden","float":"right",height:"18px",width:"16px"}).addClass("selectControl").setStyle(this.ne.getIcon("arrow",C)).appendTo(this.items);this.txt=new bkElement("div").setStyle({overflow:"hidden","float":"left",width:"66px",height:"14px",marginTop:"1px",fontFamily:"sans-serif",textAlign:"center",fontSize:"12px"}).addClass("selectTxt").appendTo(this.items);if(!window.opera){this.contain.onmousedown=this.control.onmousedown=this.txt.onmousedown=bkLib.cancelEvent}this.margin.noSelect();this.ne.addEvent("selected",this.enable.closure(this)).addEvent("blur",this.disable.closure(this));this.disable();this.init()},
    disable:function(){this.isDisabled=true;this.close();this.contain.setStyle({opacity:0.6})},
    enable:function(A){this.isDisabled=false;this.close();this.contain.setStyle({opacity:1})},
    setDisplay:function(A){this.txt.setContent(A)},
    toggle:function(){if(!this.isDisabled){(this.pane)?this.close():this.open()}},
    open:function(){this.pane=new nicEditorPane(this.items,this.ne,{width:"88px",padding:"0px",borderTop:0,borderLeft:"1px solid #ccc",borderRight:"1px solid #ccc",borderBottom:"0px",backgroundColor:"#fff"});for(var C=0;C<this.selOptions.length;C++){var B=this.selOptions[C];var A=new bkElement("div").setStyle({overflow:"hidden",borderBottom:"1px solid #ccc",width:"88px",textAlign:"left",overflow:"hidden",cursor:"pointer"});var D=new bkElement("div").setStyle({padding:"0px 4px"}).setContent(B[1]).appendTo(A).noSelect();D.addEvent("click",this.update.closure(this,B[0])).addEvent("mouseover",this.over.closure(this,D)).addEvent("mouseout",this.out.closure(this,D)).setAttributes("id",B[0]);this.pane.append(A);if(!window.opera){D.onmousedown=bkLib.cancelEvent}}},
    close:function(){if(this.pane){this.pane=this.pane.remove()}},
    over:function(A){A.setStyle({backgroundColor:"#ccc"})},
    out:function(A){A.setStyle({backgroundColor:"#fff"})},
    add:function(B,A){this.selOptions.push(new Array(B,A))},
    update:function(A){this.ne.nicCommand(this.options.command,A);this.close()}});var nicEditorFontSizeSelect=nicEditorSelect.extend({sel:{1:"1&nbsp;(8pt)",2:"2&nbsp;(10pt)",3:"3&nbsp;(12pt)",4:"4&nbsp;(14pt)",5:"5&nbsp;(18pt)",6:"6&nbsp;(24pt)"},
    init:function(){this.setDisplay("文字大小...");for(itm in this.sel){this.add(itm,'<font size="'+itm+'">'+this.sel[itm]+"</font>")}}});var nicEditorFontFamilySelect=nicEditorSelect.extend({sel:{arial:"Arial","comic sans ms":"Comic Sans","courier new":"Courier New",georgia:"Georgia",helvetica:"Helvetica",impact:"Impact","times new roman":"Times","trebuchet ms":"Trebuchet",verdana:"Verdana"},
    init:function(){this.setDisplay("选择字体...");for(itm in this.sel){this.add(itm,'<font face="'+itm+'">'+this.sel[itm]+"</font>")}}});var nicEditorFontFormatSelect=nicEditorSelect.extend({sel:{p:"Paragraph",pre:"Pre",h6:"Heading&nbsp;6",h5:"Heading&nbsp;5",h4:"Heading&nbsp;4",h3:"Heading&nbsp;3",h2:"Heading&nbsp;2",h1:"Heading&nbsp;1"},
    init:function(){this.setDisplay("文字格式...");for(itm in this.sel){var A=itm.toUpperCase();this.add("<"+A+">","<"+itm+' style="padding: 0px; margin: 0px;">'+this.sel[itm]+"</"+A+">")}}});nicEditors.registerPlugin(nicPlugin,nicSelectOptions);


var nicLinkOptions = {
	buttons : {
		'link' : {name : '添加链接', type : 'nicLinkButton', tags : ['A']},
		'unlink' : {name : '删除链接',  command : 'unlink', noActive : true}
	}
};

var nicLinkButton=nicEditorAdvancedButton.extend({
    addPane:function(){
        this.ln=this.ne.selectedInstance.selElm().parentTag("A");
        this.addForm({
            "":{type:"title",txt:"Add/Edit Link"},
            href:{type:"text",txt:"URL",value:"http://",style:{width:"150px"}},
            title:{type:"text",txt:"Title"},
            target:{type:"select",txt:"Open In",options:{"":"Current Window",_blank:"New Window"},style:{width:"100px"}}},
            this.ln
            )
        },
    submit:function(C){
        var A=this.inputs.href.value;
        if(A=="http://"||A==""){
            alert("You must enter a URL to Create a Link");
            return false
            }
        this.removePane();
        if(!this.ln){
            var B="javascript:nicTemp();";
            this.ne.nicCommand("createlink",B);
            this.ln=this.findElm("A","href",B)
            }
        if(this.ln){
            this.ln.setAttributes({
                href:this.inputs.href.value,
                title:this.inputs.title.value,
                target:this.inputs.target.options[this.inputs.target.selectedIndex].value
                })
            }
        }
});
nicEditors.registerPlugin(nicPlugin,nicLinkOptions);


var nicColorOptions = {
	buttons : {
		'forecolor' : {name : __('改变文字颜色'), type : 'nicEditorColorButton', noClose : true},
		'bgcolor' : {name : __('改变背景颜色'), type : 'nicEditorBgColorButton', noClose : true}
	}
};

var nicEditorColorButton=nicEditorAdvancedButton.extend({
    addPane:function(){var D={0:"00",1:"33",2:"66",3:"99",4:"CC",5:"FF"};var H=new bkElement("DIV").setStyle({width:"270px"});for(var A in D){for(var F in D){for(var E in D){var I="#"+D[A]+D[E]+D[F];var C=new bkElement("DIV").setStyle({cursor:"pointer",height:"15px","float":"left"}).appendTo(H);var G=new bkElement("DIV").setStyle({border:"2px solid "+I}).appendTo(C);var B=new bkElement("DIV").setStyle({backgroundColor:I,overflow:"hidden",width:"11px",height:"11px"}).addEvent("click",this.colorSelect.closure(this,I)).addEvent("mouseover",this.on.closure(this,G)).addEvent("mouseout",this.off.closure(this,G,I)).appendTo(G);if(!window.opera){C.onmousedown=B.onmousedown=bkLib.cancelEvent}}}}this.pane.append(H.noSelect())},
    colorSelect:function(A){this.ne.nicCommand("foreColor",A);this.removePane()},
    on:function(A){A.setStyle({border:"2px solid #000"})},
    off:function(A,B){A.setStyle({border:"2px solid "+B})}});

var nicEditorBgColorButton=nicEditorColorButton.extend({
        colorSelect:function(A){this.ne.nicCommand("hiliteColor",A);this.removePane()}});nicEditors.registerPlugin(nicPlugin,nicColorOptions);


var nicImageOptions = {
	buttons : {
		'image' : {name : '添加图像', type : 'nicImageButton', tags : ['IMG']}
	}
	
};

var nicImageButton=nicEditorAdvancedButton.extend({
    addPane:function(){
        this.im=this.ne.selectedInstance.selElm().parentTag("IMG");
        this.addForm({
            "":{type:"title",txt:"添加/编辑图像"},
            src:{type:"text",txt:"图像网址(URL)",value:"http://",style:{width:"150px"}},
            alt:{type:"text",txt:"提示文字",style:{width:"100px"}},
            align:{type:"select",txt:"对齐方式",options:{none:"默认",left:"左对齐",right:"右对齐"}}},
        this.im)},
    submit:function(B){
        var C=this.inputs.src.value;
        if(C==""||C=="http://"){
            alert("请输入一个图像的网址(URL)来插入图片!");
            return false
        }
        this.removePane();
        if(!this.im){
            var A="javascript:nicImTemp();";
            this.ne.nicCommand("insertImage",A);
            this.im=this.findElm("IMG","src",A)
        }
        if(this.im){
            this.im.setAttributes({
                src:this.inputs.src.value,
                alt:this.inputs.alt.value,
                align:this.inputs.align.value
            })
        }
    }
});
nicEditors.registerPlugin(nicPlugin,nicImageOptions);

var nicSaveOptions = {
	buttons : {
		'save' : {name : __('保存内容'), type : 'nicEditorSaveButton'}
	}
};

var nicEditorSaveButton=nicEditorButton.extend({
    init:function(){if(!this.ne.options.onSave){this.margin.setStyle({display:"none"})}},
    mouseClick:function(){var B=this.ne.options.onSave;var A=this.ne.selectedInstance;B(A.getContent(),A.elm.id,A)}});nicEditors.registerPlugin(nicPlugin,nicSaveOptions);


var nicUploadOptions = {
	buttons : {
		'upload' : {name : '上传图片', type : 'nicUploadButton'}
	}
	
};

var nicUploadButton=nicEditorAdvancedButton.extend({
    nicURI:"http://files.nicedit.com/",
    addPane:function(){
        this.im=this.ne.selectedInstance.selElm().parentTag("IMG");
        this.myID=Math.round(Math.random()*Math.pow(10,15));
        this.requestInterval=1000;
        this.uri=this.ne.options.uploadURI||this.nicURI;
        nicUploadButton.lastPlugin=this;
        this.myFrame=new bkElement("iframe").setAttributes({
            width:"100%",
            height:"100px",
            frameBorder:0,
            scrolling:"no"
            }).setStyle({border:0}).appendTo(this.pane.pane);
        this.progressWrapper=new bkElement("div").setStyle({
            display:"none",
            width:"100%",
            height:"20px",
            border:"1px solid #ccc"}).appendTo(this.pane.pane);
        this.progress=new bkElement("div").setStyle({width:"0%",height:"20px",backgroundColor:"#ccc"}).setContent("&nbsp").appendTo(this.progressWrapper);
        setTimeout(this.addForm.closure(this),50)},
    addForm:function(){
        var A=this.myDoc=this.myFrame.contentWindow.document;
        A.open();
        A.write("<html><body>");
        A.write('<form method="post" action="'+this.uri+"?id="+this.myID+'" enctype="multipart/form-data">');
        A.write('<input type="hidden" name="APC_UPLOAD_PROGRESS" value="'+this.myID+'" />');
        if(this.uri==this.nicURI){
            A.write('<div style="position: absolute; margin-left: 160px;"><img src="http://imageshack.us/img/imageshack.png" width="30" style="float: left;" /><div style="float: left; margin-left: 5px; font-size: 10px;">Hosted by<br /><a href="http://www.imageshack.us/" target="_blank">ImageShack</a></div></div>')
            }
        A.write('<div style="font-size: 14px; font-weight: bold; padding-top: 5px;">上传图片</div>');
        A.write('<input name="nicImage" type="file" style="margin-top: 10px;" />');
        A.write("</form>");
        A.write("</body></html>");
        A.close();
        this.myBody=A.body;
        this.myForm=$BK(this.myBody.getElementsByTagName("form")[0]);
        this.myInput=$BK(this.myBody.getElementsByTagName("input")[1]).addEvent("change",this.startUpload.closure(this));
        this.myStatus=new bkElement("div",this.myDoc).setStyle({
            textAlign:"center",fontSize:"14px"
            }).appendTo(this.myBody)},
    startUpload:function(){
        this.myForm.setStyle({display:"none"});
        this.myStatus.setContent('<img src="http://files.nicedit.com/ajax-loader.gif" style="float: right; margin-right: 40px;" /><strong>Uploading...</strong><br />Please wait');
        this.myForm.submit();
        setTimeout(this.makeRequest.closure(this),this.requestInterval)},
        makeRequest:function(){
            if(this.pane&&this.pane.pane){
                nicUploadButton.lastPlugin=this;
                var A=new bkElement("script").setAttributes({type:"text/javascript",src:this.uri+"?check="+this.myID+"&rand="+Math.round(Math.random()*Math.pow(10,15))}).addEvent("load",function(){A.parentNode.removeChild(A)}).appendTo(document.getElementsByTagName("head")[0]);
                if(this.requestInterval){
                    setTimeout(this.makeRequest.closure(this),this.requestInterval)}}},
        setProgress:function(A){
            this.progressWrapper.setStyle({display:"block"});
            this.progress.setStyle({
                width:A+"%"})},
                update:function(C){
                    if(C==false){
                        this.progressWrapper.setStyle({display:"none"})
                    }
                    else{
                        if(C.url){
                            this.setProgress(100);
                            this.requestInterval=false;
                            if(!this.im){
                                this.ne.selectedInstance.restoreRng();
                                var B="javascript:nicImTemp();";
                                this.ne.nicCommand("insertImage",B);
                                this.im=this.findElm("IMG","src",B)
                                }
                            var A=parseInt(this.ne.selectedInstance.elm.getStyle("width"));
                            if(this.im){
                                this.im.setAttributes({
                                    src:C.url,
                                    width:(A&&C.width)?Math.min(A,C.width):""
                                    })
                            }
                                this.removePane()
                        }
                        else{
                            if(C.error){
                                this.requestInterval=false;
                                this.setProgress(100);
                                alert("There was an error uploading your image ("+C.error+").");
                                this.removePane()
                            }
                            else{
                                if(C.noprogress){
                                    this.progressWrapper.setStyle({display:"none"});
                                    if(this.uri.indexOf("http:")==-1||this.uri.indexOf(window.location.host)!=-1){this.requestInterval=false}
                                }
                                else{
                                    this.setProgress(Math.round((C.current/C.total)*75));
                                    if(C.interval){this.requestInterval=C.interval}
                                }
                            }
                        }
                    }
                }
});
nicUploadButton.statusCb=function(A){
    nicUploadButton.lastPlugin.update(A)
}
nicEditors.registerPlugin(nicPlugin,nicUploadOptions);

var nicXHTML=bkClass.extend({
    stripAttributes:["_moz_dirty","_moz_resizing","_extended"],
    noShort:["style","title","script","textarea","a"],
    cssReplace:{"font-weight:bold;":"strong","font-style:italic;":"em"},
    sizes:{1:"xx-small",2:"x-small",3:"small",4:"medium",5:"large",6:"x-large"},
    construct:function(A){
        this.ne=A;
        if(this.ne.options.xhtml){
            A.addEvent("get",this.cleanup.closure(this))
        }
    },
    cleanup:function(A){
        var B=A.getElm();
        var C=this.toXHTML(B);
        A.content=C
    },
    toXHTML:function(C,A,L){
        var G="";var O="";var P="";
        var I=C.nodeType;
        var Q=C.nodeName.toLowerCase();
        var N=C.hasChildNodes&&C.hasChildNodes();
        var B=new Array();
        switch(I){
            case 1:
                var H=C.attributes;
                switch(Q){
                    case"b":Q="strong";break;
                    case"i":Q="em";break;
                    case"font":Q="span";break
                }
                if(A){
                    for(var F=0;F<H.length;F++){
                        var K=H[F];var M=K.nodeName.toLowerCase();
                        var D=K.nodeValue;
                        if(!K.specified||!D||bkLib.inArray(this.stripAttributes,M)||typeof (D)=="function"){continue}
                        switch(M){
                            case"style":
                                var J=D.replace(/ /g,"");
                                for(itm in this.cssReplace){
                                    if(J.indexOf(itm)!=-1){
                                        B.push(this.cssReplace[itm]);
                                        J=J.replace(itm,"")
                                    }
                                }
                                P+=J;
                                D="";
                                break;
                            case"class":D=D.replace("Apple-style-span","");break;
                            case"size":P+="font-size:"+this.sizes[D]+";";D="";break
                        }
                        if(D){O+=" "+M+'="'+D+'"'}
                    }
                    if(P){O+=' style="'+P+'"'}
                    for(var F=0;F<B.length;F++){G+="<"+B[F]+">"}
                    if(O==""&&Q=="span"){A=false}
                    if(A){G+="<"+Q;if(Q!="br"){G+=O}}
                }
                if(!N&&!bkLib.inArray(this.noShort,M)){if(A){G+=" />"}}else{if(A){G+=">"}
                for(var F=0;F<C.childNodes.length;F++){
                    var E=this.toXHTML(C.childNodes[F],true,true);
                    if(E){G+=E}}
                }
                if(A&&N){G+="</"+Q+">"}
                for(var F=0;F<B.length;F++){G+="</"+B[F]+">"}
                break;
            case 3:G+=C.nodeValue;break
        }
        return G
    }
});
nicEditors.registerPlugin(nicXHTML);

var nicBBCode=bkClass.extend({
    construct:function(A){
        this.ne=A;
        if(this.ne.options.bbCode){
            A.addEvent("get",this.bbGet.closure(this));
            A.addEvent("set",this.bbSet.closure(this));
            var B=this.ne.loadedPlugins;
            for(itm in B){if(B[itm].toXHTML){this.xhtml=B[itm]}}
        }
    },
    bbGet:function(A){
        var B=this.xhtml.toXHTML(A.getElm());
        A.content=this.toBBCode(B)},
        bbSet:function(A){
            A.content=this.fromBBCode(A.content)
        },
        toBBCode:function(B){
            function A(D,C){B=B.replace(D,C)}
            A(/\n/gi,"");
            A(/<strong>(.*?)<\/strong>/gi,"[b]$1[/b]");
            A(/<em>(.*?)<\/em>/gi,"[i]$1[/i]");
            A(/<span.*?style="text-decoration:underline;">(.*?)<\/span>/gi,"[u]$1[/u]");
            A(/<ul>(.*?)<\/ul>/gi,"[list]$1[/list]");
            A(/<li>(.*?)<\/li>/gi,"[*]$1[]");
            A(/<ol>(.*?)<\/ol>/gi,"[list=1]$1[/list]");
            A(/<img.*?src="(.*?)".*?>/gi,"[img]$1[/img]");
            A(/<a.*?href="(.*?)".*?>(.*?)<\/a>/gi,"[url=$1]$2[/url]");
            A(/<br.*?>/gi,"\n");
            A(/<.*?>.*?<\/.*?>/gi,"");
            return B
        },
        fromBBCode:function(A){
            function B(D,C){
                A=A.replace(D,C)
            }
            B(/\[b\](.*?)\[\/b\]/gi,"<strong>$1</strong>");
            B(/\[i\](.*?)\[\/i\]/gi,"<em>$1</em>");
            B(/\[u\](.*?)\[\/u\]/gi,'<span style="text-decoration:underline;">$1</span>');
            B(/\[list\](.*?)\[\/list\]/gi,"<ul>$1</ul>");
            B(/\[list=1\](.*?)\[\/list\]/gi,"<ol>$1</ol>");
            B(/\[\*\](.*?)\[\/\*\]/gi,"<li>$1</li>");
            B(/\[img\](.*?)\[\/img\]/gi,'<img src="$1" />');
            B(/\[url=(.*?)\](.*?)\[\/url\]/gi,'<a href="$1">$2</a>');
            B(/\n/gi,"<br />");return A
        }
});
nicEditors.registerPlugin(nicBBCode);

nicEditor=nicEditor.extend({
    floatingPanel:function(){
        this.floating=new bkElement("DIV").setStyle({position:"absolute",top:"-1000px"}).appendTo(document.body);
        this.addEvent("focus",this.reposition.closure(this)).addEvent("blur",this.hide.closure(this));
        this.setPanel(this.floating)},
    reposition:function(){
        var B=this.selectedInstance.e;
        this.floating.setStyle({
            width:(parseInt(B.getStyle("width"))||B.clientWidth)+"px"});
            var A=B.offsetTop-this.floating.offsetHeight;if(A<0){
                A=B.offsetTop+B.offsetHeight
            }
        this.floating.setStyle({
            top:A+"px",
            left:B.offsetLeft+"px",
            display:"block"})
    },
    hide:function(){this.floating.setStyle({top:"-1000px"})}
});


var nicCodeOptions = {
	buttons : {
		'xhtml' : {name : '编辑HTML', type : 'nicCodeButton'}
	}
	
};

var nicCodeButton=nicEditorAdvancedButton.extend({
    width:"350px",
    addPane:function(){
        this.addForm({
            "":{type:"title",txt:"Edit HTML"},
            code:{
                type:"content",
                value:this.ne.selectedInstance.getContent(),
                style:{width:"340px",height:"200px"}
            }
        })
    },
    submit:function(B){
        var A=this.inputs.code.value;
        this.ne.selectedInstance.setContent(A);
        this.removePane()
    }
});
nicEditors.registerPlugin(nicPlugin,nicCodeOptions);

